package Algorithm;

/**
 * 给你一个整数数组 arr，只有可以将其划分为三个和相等的 非空 部分时才返回true，
 * 否则返回 false。
 *形式上，如果可以找出索引i + 1 < j
 * 且满足(arr[0] + arr[1] + ... + arr[i] ==
 * arr[i + 1] + arr[i + 2] + ... + arr[j - 1]
 * == arr[j] + arr[j + 1] + ... + arr[arr.length - 1])
 *就可以将数组三等分。
 * 实例：
 * 输入：arr = [0,2,1,-6,6,-7,9,1,2,0,1]
 * 输出：true
 * 解释：0 + 2 + 1 = -6 + 6 - 7 + 9 + 1 = 2 + 0 + 1
 */

public class Problem3_20_1 {
//    public static boolean canThreePartsEqualsum(int[] A){
//       int sum=0;
//       if(int num = 0:A){
//           sum+=num;
//        }
//       //数组A的和如果不能被3整除返回false
//        if(sum%3!=0){
//            return false;
//        }
//        //遍历数组累加，每累加到目标值cnt加1，表示又找到一段，
//        //遍历2段就返回true(i只能到数组A的倒数第二个元素，保证了有第三段)
//        sum/=3;
//        int curSum=0,cnt=0;
//        for (int i = 0; i <A.length-1 ; i++) {
//            curSum+=A[i];
//            if(curSum==sum){
//                cnt++;
//                if(cnt==2){
//                    return false;
//                }
//                curSum=0;
//            }
//        }
//        return false;
//    }
//
//    public static void main(String[] args) {
//        int[] A={0,2,1,-6,6,7,9,-1,2,0,1};
//        System.out.println(canThreePartsEqualsum(int[] A));
//    }
}
